#pragma once

BEGIN_ARETE_NAMESPACE(input)

class AERepeatKey
{
public:
	AERepeatKey(float,float);

	void begin(const OIS::KeyEvent&);
	void end(const OIS::KeyEvent&);
	void repeat(float);

private:
	OIS::KeyCode m_key;
	unsigned int m_char;

	float m_fElapsed;
	float m_fDelay;

	float m_fRepeatDelay;
	float m_fInitialDelay;

protected:

	virtual void repeatKey(OIS::KeyCode,unsigned int) = 0;
};

END_ARETE_NAMESPACE